﻿using System;
using System.Data;
using System.Data.SqlClient;

namespace DAL
{
    public class DALMethod
    {
        //C# ADO.NET数据库操作及常用类概述
        //电脑上只有一个数据库采用(local)，否则用指定的数据库名称并且不用括号       
        public string strConnect = @"Data Source=DESKTOP-DF5BTIN\MSSQLSERVER15;
                                          Initial Catalog=PSSMS;User ID=sa;Password=sa123";
        //public string strConnect = @"Data Source=(local);
        //                                  Initial Catalog=TTBMS;User ID=sa;Password=sa123";
        /// <summary>
        /// 1、查询数据集
        /// </summary>
        /// <param name="sql">存储过程名</param>
        /// <param name="sqls">参数数组</param>
        /// <returns></returns>
        public DataSet QueryDataSet(String sql, SqlParameter[] sqls)
        {
            //存放对数据库查询的结果。
            DataSet ds = new DataSet();
            //1.获取表示创建变量并将其初始化，以便引用系统资源。在using()中
            using (SqlConnection conn = new SqlConnection(strConnect))
            {
                //使用表示访问资源并使用资源执行操作
                conn.Open();//打开数据库
                //指定操作数据库的存储过程
                SqlDataAdapter data = new SqlDataAdapter(sql, conn);
                //获取存储过程名称
                data.SelectCommand.CommandType = CommandType.StoredProcedure;
                //获取参数数组
                data.SelectCommand.Parameters.AddRange(sqls);
                //把查询结果添加到或刷新到DataSet
                data.Fill(ds);
                conn.Close();//关闭数据库
            }
            return ds;//存放对数据库查询的结果。
        }

        /// <summary>
        /// 修改数据（增、删、改）
        /// </summary>
        /// <param name="sql">存储过程名</param>
        /// <param name="sqls">参数数组</param>
        /// <returns></returns>
        public int UpdateData(String sql, SqlParameter[] sqls)
        {
            //声明变量并赋值
            int intCount = 0;
            using (SqlConnection conn = new SqlConnection(strConnect))
            {
                //打开数据库
                conn.Open();
                //指定操作数据库的存储过程
                SqlCommand com = new SqlCommand(sql, conn);
                //获取存储过程名称
                com.CommandType = CommandType.StoredProcedure;
                //获取参数数组
                com.Parameters.AddRange(sqls);
                //获取返回受影响的行数
                intCount = com.ExecuteNonQuery();
                //关闭数据库
                conn.Close();
            }
            return intCount;
        }
    }
}
